package com.example.siyun.config;

import com.example.siyun.util.MD5Util;
import com.example.siyun.util.WebUtils;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * @Auther: 全
 * @Date: 2022/10/12 09:23
 * @Description: 自定义加密的配置类
 */
@Configuration
public class MyPasswordEncoder implements PasswordEncoder {

    /**
     * 比较表单输入的密码经过加密处理和数据库的密码做比较
     * @param rawPassword:表单拿过来的原始密码 encodedPassword:经过编码后的密码,也就是数据库的密码
     * @return 返回两者的密码是否相同
     */
    @Override
    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        String passwordpassword = (String) WebUtils.getSession().getAttribute("passwordpassword");
        encodedPassword=passwordpassword;
        return encodedPassword.equals(MD5Util.encode((String)rawPassword));
    }
    /**
     * 表单的密码进行加密处理
     * @param rawPassword:表单拿过来的原始密码 encodedPassword:经过编码后的密码,也就是数据库的密码
     * @return 经过自定义加密后的密码
     */
    @Override
    public String encode(CharSequence rawPassword) {
        return MD5Util.encode((String)rawPassword);
    }
}
